01. 도커는 무엇일까?
프로젝트를 진행하며 어렴풋이 알고 있었던 도커를 명확하게 이해하고자 여름휴가 중에😭 정리해봅니다.
1. 도커를 쓰는 이유❓
컨테이너는 결국 환경에 상관없이 어플리케이션을 실행하게 해준다.
예를 들어보자! 도커 없이 redis를 다운받고자 하면 레디스 공식사이트에 가보면 아래와 같은 명령어를 입력하라고 한다.
$ wget https://download.redis.io/releases/redis-6.2.5.tar.gz
$ tar xzf redis-6.2.5.tar.gz
$ cd redis-6.2.5
$ make
물론 wget이라는 명령어는 찾을 수 없다.
하지만 docker가 설치되어 있으면 OS 등에 관계없이 아래 명령어로 실행이 가능하다.
docker run -it redis
2. 도커❓ 컨테이너❓이미지❓
도커를 알기 전에 컨테이너는 무엇인지부터 알아보자.
2-1. 컨테이너의 정의
-
그 안에 다양한 프로그램들을 추상화하고 동일한 인터페이스를 제공하여 프로그램의 배포 및 관리를 단순하게 해주는 것
-
코드와 모든 종속성을 패키지화하여 응용 프로그램이 여러 환경에서 빠르고 안정적으로 실행되도록 하는 소프트웨어 표준 단위
장점만 정리를 해보자면
- 보안, 스토리지 및 네트워크 격리
- 하드웨어 리소스가 덜 필요하다.
- AWS, GCP 등 다중환경 배포가능
- 재사용성이 높음
그렇다면 도커는 무엇일까?
2-2. 도커의 정의
컨테이너를 사용하여 응용프로그램을 더 쉽게 만들고 배포하고 실행할 수 있도록 설계된 도구
- 컨테이너 기반의 오픈소스 가상화 플랫폼, 생태계
2-3. 컨테이너 이미지
컨테이너 이미지는 간단하게 말해서 프로그램을 실행하는데 필요한 설정이나 종속성을 갖고 있는 것이다. 즉, 이미지를 이용해서 컨테이너를 생성한다!
- 컨테이너는 이미지의 인스턴스라고 볼 수 있다.
- 이미지가 저장되는 곳은 Registry